/*
 * 0100. 删除排序数组中的重复数字
 * 给定一个排序数组，在原数组中删除重复出现的数字，使得每个元素只出现两次，并且返回新的数组的长度。
 * 不要使用额外的数组空间，必须在原地没有额外空间的条件下完成。
 * https://www.lintcode.com/problem/remove-duplicates-from-sorted-array-ii/description
 * 
 * 样例
 * 给出数组A =[1,1,2]，你的函数应该返回长度3，此时A=[1,1,2]。
 */
package remove_duplicates_from_sorted_array_ii_0101;

public class Remove_duplicates_from_sorted_array_ii_0101 {
    /**
     * @param A: a array of integers
     * @return : return an integer
     */
    public int removeDuplicates(int[] nums) {
        // write your code here
        int cnt = 0;
		for(int i = 0; i < nums.length; ) {
			int tmpCnt = i;
			int cntNum = 0;
			while((tmpCnt < nums.length) && (nums[i] == nums[tmpCnt])) {
				++tmpCnt;
				++cntNum;
			}
			if(cntNum > 1){
			    nums[cnt++] = nums[i];
			    nums[cnt++] = nums[i];
			} else {
			    nums[cnt++] = nums[i];
			}
			i = tmpCnt;
		}
		return cnt;
    }

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
